The memory structure in known signal processing systems uses small bytes to improve data integrity by enabling error-checking at a high frequency, due to the small byte size. While this method has applicability to certain signal processing environments (where bit count, as opposed to bit order and other integrity aspects, is the imperative) it does not extend well to signal processing environments where data integrity is imperative. In such situations, an accurate bit count is imperative. In other words, data checking mandates that the number of bits that go into a system are the same number that come out of the system. For example, when copying a Compact Disc (CD) which has 681 MB of data, if the copy is missing any bytes detected through error-checking such as error-correction code (ECC) processing, the ECC will add any missing bytes in order to achieve a lossless copy.
Such high error-checking frequency is achieved by dissection of the data to local memory for the purpose of error-checking, which is accomplished through caching. However, an undesirable result of caching occurs, and, due to inherent capacitances, inductances, slewing and reactances of chips, firmware and other hardware components, timing errors are dramatically increased. These timing errors manifest themselves in the output data stream as “jitter” which degrades data integrity.
Jitter is commonly known as a time variation of a periodic signal in electronics and telecommunications systems, often in relation to a reference clock source. Jitter may be observed in characteristics such as the frequency of successive pulses, the signal amplitude, or phase of periodic signals. Jitter is a significant and usually undesired factor in the design of almost all communications systems and links.
In the context of digital audio extraction from Compact Discs, jitter causes extracted audio samples to be doubled-up or skipped entirely if the Compact Disc drive re-seeks. The problem typically occurs during seeking because current audio CD standards do not require bit-accurate addressing but rather, byte accuracy only.
As a result, the extraction process may restart a few samples early or late, resulting in omitted samples that are replaced quantitatively through ECC. If ECC is not employed (in order to reduce the jitter created by ECC), these glitches often sound like small repeating clicks during playback. A successful approach of correction in software involves performing overlapping reads and utilizing the pre-knowledge of the type of structure the digital signal utilizes (for example, that a CD is composed of 8 bits/byte structures using 98 sectors/in 4096 allocation units) to find overlap at the edges. Most extraction programs perform seek jitter correction.
The dissection of data for the usage of caching, and the usage of caching itself, create undesirable time delays that cannot be circumvented due to the physics caused by the proximity of the hardware to each other or to foils or wiring of the circuit. Other time shifts are also caused by passive reactances and active temporal shifts from solid state devices' speed limitations (slewing).
Small bytes only amplify the situation, and are actually antagonistic to a system that depends on low jitter movement of data, such as systems adapted for audio, video and digital image presentation purposes. For example, in digital imagery, jitter does not increase pixilation but rather causes it to be more apparent. This is because the timing of when the pixels are created cause them to appear further apart, or misaligned with an adjacent pixel, similar to if a lower resolution were used. As another example, in digital audio applications, jitter manifests as the audio bands being separated from the remainder of the fundamental composite of music, that is, sibilance and high frequencies will be presented in a prominent and detached manner from the music.
In high end audio, where image recreation and sound staging depend upon near perfect temporal relationships, a particular band or aspect of the music will depart from the audio image, sometimes entirely. For example, the bass notes in a cello will emanate from the image until a note with jitter is played which will move towards or completely on the speakers and the sibilance as mentioned above, too will move out of the stereo image on to the speakers.
In the prior art there are two predominant methods for reducing the occurrence of jitter. The first is re-sampling, in which a data stream is interrupted by a circuit that has its own local clock. Such a circuit reformats the data to have a very low level of jitter and then passes the reformatted data onto the next piece of hardware. Re-sampling data does reduce jitter; however, once the data is reintroduced into a data processing system, every component in the data processing and in the post-re-sampling device has jittering attributes. Even the connection to a re-sampling device (e.g., a cable) can impart inductive attributes that introduce jitter to the signal. In fact, since resampling is so error prone due to the interruption of the signal and its own jitter components, most resampling devices simply “clip” the signal. That is, the signal is amplified slightly beyond the amplitude capabilities of the devices such that the signals are converted into very defined square waves which are very easily recognized as binary “1s” (indicating that an event is taking place or has taken place), and in doing so, eliminates at least this one aspect of ambiguity in digital data transmission, albeit at the expense of perfect accuracy with respect to determining a binary “0” (indicating a non-event or a vacancy where an event could take place) from a binary “1.”
A second and more commonly used prior art method for reducing jittering is known as global clocking. This technique requires the use of an extremely high-precision clock of an atomic nature, typically using radioactive Rubidium. These global clocks become the timing reference for every point in the system requiring use of a clock. Significant drawbacks to using global clocks are that they are complicated to build and the reactance of this single point connection to each area of the data processing system that requires clocking creates a jittered point, however small. This jittered point can be system corrected if the hardware is known in advance, and therefore time delays or a phase shift may be built into the system to compensate for inter-hardware timing errors. Conversely, third party digital clocking devices cannot enjoy this compensation and their efficacies are thus dramatically reduced. Global clocks typically require significant hardware and encompass a large volume of area (e.g., the size of a typical full PC case or TV set). The typical atomic clock system costs approximately $100,000, rendering it cost prohibitive for data processing system environments requiring the suppression of jitter.